﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Subgurim.Controles;
using System.Drawing;
using AccesoADatos.Entidades;
using AccesoADatos;
using ReglasDeNegocio;
///<summary>
/// Clase que captura los eventos generados durante la creacion de una maquina de apuesta y su ubicacion en 
/// google maps
/// </summary>


namespace SistemaBettingDT.GUI.Vista
{
    public partial class PantallaMaquinaCrear : System.Web.UI.Page
    {

        #region Atributos
        
        GLatLng puntero;

        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            MaquinaLogica listMaquina = new MaquinaLogica();
            if (ddlStatus.SelectedItem == null)
            {
                ddlStatus.Items.Clear();
                ddlStatus.Items.Add("-- Seleccione una opcion--");

                foreach (Maquina status in listMaquina.ConsultarStatus())
                {
                    ListItem item = new ListItem();
                    item.Text = status.Status;
                    item.Value = status.IdMaquina.ToString();
                    ddlStatus.Items.Add(item);// la muestra en el combobox

                }

            }

            if (ddlMarca.SelectedItem == null)
            {
                ddlMarca.Items.Clear();
                ddlMarca.Items.Add("-- Seleccione una opcion--");

                foreach (Maquina marca in listMaquina.ConsultarMarcas())
                {
                    ListItem item = new ListItem();
                    item.Text = marca.Marca;
                    item.Value = marca.IdMaquina.ToString();
                    ddlMarca.Items.Add(item);// la muestra en el combobox

                }

            }

            if ((!Page.IsPostBack))
            {

                GMap1.enableDragging = true;
                GMap1.enableGoogleBar = true;
                GMap1.Language = "es";
                GMap1.BackColor = Color.White;
                GMap1.GZoom = 3;
                //para el tipo de mapa
                GMap1.setCenter(new GLatLng(10.463675, -66.977207), 15);//coordenadas ucab
                GMap1.mapType = GMapType.GTypes.Hybrid;
                GMap1.addMapType(GMapType.GTypes.Physical);
                GMap1.addControl(new GControl(GControl.preBuilt.MapTypeControl));
                GMap1.enableRotation = true;
                //para permitir la navegacion con el teclado
                GMap1.enableGKeyboardHandler = true;

                //para colocar tipo de cursor cuando se este moviendo el mapa y cuando se pueda mover el mapa
                GCustomCursor customCursor = new GCustomCursor(cursor.crosshair, cursor.text);
                GMap1.addCustomCursor(customCursor);

                //para infowindows
                //GInfoWindow window = new GInfoWindow(latlon, "Ejemplo de <b>infoWindow</b>");
                //GMap1.addInfoWindow(window);

                //para colocar lat y lng en el mapa

                GControl control = new GControl(GControl.extraBuilt.NumericalZoomControl);
                GMap1.addControl(control);

                GMap1.addControl(new GControl(GControl.extraBuilt.TextualCoordinatesControl, new GControlPosition(GControlPosition.position.Top_Right)));
                GMap1.addControl(new GControl(GControl.extraBuilt.TextualOnClickCoordinatesControl, new GControlPosition(GControlPosition.position.Bottom_Right)));
                GMap1.addControl(new GControl(GControl.extraBuilt.MarkCenter));
            }

        }

        protected string GMap1_Click(object s, GAjaxServerEventArgs e)
        {
            Session["punto"] = e.point;
            GMarker marker = new GMarker(e.point);
            return String.Empty;
        }

        protected void crearMaquina_Click(object sender, EventArgs e)
        {

            if (Page.IsValid)
            {
                puntero = (GLatLng)Session["punto"];
                

                Maquina crearMaquina = new Maquina();
                crearMaquina.Marca = this.ddlMarca.SelectedItem.Text;
                crearMaquina.Status = this.ddlStatus.SelectedItem.Text;
                crearMaquina.Latitud = (decimal)puntero.lat;
                crearMaquina.Longitud = (decimal)puntero.lng;
                crearMaquina.NumeroIdentificacion = this.txtNumIdentificacion.Text;
                crearMaquina.Descripcion = this.txtNewDescripcionMaquina.Text;
                crearMaquina.RutaImagen = "";
                //Categoria updCategoria = new Categoria();

                MaquinaLogica insMaquina = new MaquinaLogica();
                insMaquina.InsertarMaquina(crearMaquina);

            }

        }

        protected void status_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}